export default {
    // 命名空间 (模块化中必不可少)， 命名空间的作用：为了让当前vuex模块里面的状态名和函数名和其他空间的命名不产生冲突
    namespaced: true,
    // 定义数据
    state: {
        userInfo: null,
    },
    // 同步方法
    mutations: {
        setUserInfo(state, val) {
            state.userInfo = val;
        }
    },
    // 异步方法
    actions: {
        // 登录
        login(context, info = { username: "", password: "" }) {
            return new Promise((resolve, reject) => {
                if (info.username == '') {
                    reject('请输入用户名')
                    return
                }
                if (info.password == '') {
                    reject('请输入密码')
                    return
                }
                if (info.username != 'admin') {
                    reject('暂无此用户')
                    return
                }
                if (info.password != '1') {
                    reject('密码错误')
                    return
                }
                context.commit('setUserInfo', info);
                resolve('登录成功');
            })
        },
        // 退出登录
        logout(context, val) {
            return new Promise((resolve, reject) => {
                sessionStorage.clear();
                context.commit('setUserInfo', null);
                resolve('退出成功')
            })
        }
    },
}